﻿using System;
using System.Collections.Generic;
using System.Text;

namespace SportsPlatform.Dto.PermissionManagement.UserInfo
{
    /// <summary>
    /// 登录返回
    /// </summary>
    public class GetLoginUserInfoDto
    {

        /// <summary>
        /// 主键
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 登录名
        /// </summary>
        public string LoginName { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public string UserSex { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        public string UserIdNo { get; set; }

        /// <summary>
        /// 身份证照片
        /// </summary>
        public string UserIdNoPhoto { get; set; }

        /// <summary>
        /// 照片头像
        /// </summary>
        public string UserPhoto { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        public DateTime? UserDateOfBirth { get; set; }

        /// <summary>
        /// 手机号码
        /// </summary>
        public string UserTel { get; set; }

        /// <summary>
        /// 备注介绍
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 部门信息
        /// </summary>
        public DepartmentInfo.GetDepartmentInfoDto DepartmentInfo { get; set; }

        /// <summary>
        /// 公司信息
        /// </summary>
        public CompanyInfo.GetCompanyInfoDto CompanyInfo { get; set; }

        /// <summary>
        /// 平台信息
        /// </summary>
        public PlatformInfo.GetPlatformInfoDto PlatformInfo { get; set; }

        /// <summary>
        /// 角色信息
        /// </summary>
        public RoleInfo.GetRoleInfoDto RoleInfo { get; set; }

        /// <summary>
        /// token
        /// </summary>
        public String Token { get; set; }

        /// <summary>
        /// token有效时间
        /// 单位：秒
        /// </summary>
        public int TokenExpiration { get; set; }

        /// <summary>
        /// 功能权限菜单返回
        /// </summary>
        public List<FunctionChildren> Childrens { get; set; }

    }
    /// <summary>
    /// 功能菜单
    /// </summary>
    public class FunctionChildren
    {
        /// <summary>
        /// 菜单路径
        /// </summary>
        public string Path { get; set; }

        /// <summary>
        /// 菜单别名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 视图文件路径
        /// </summary>
        public string Component { get; set; }

        /// <summary>
        /// 重定向地址
        /// </summary>
        public string Redirect { get; set; }

        /// <summary>
        /// 排序序号
        /// </summary>
        public int? FunctionNo { get; set; }

        /// <summary>
        /// 菜单信息
        /// </summary>
        public Meta Meta { get; set; }
        /// <summary>
        /// 子菜单
        /// </summary>
        public List<FunctionChildren> Children { get; set; }
    }

    /// <summary>
    /// 菜单信息
    /// </summary>
    public class Meta {
        /// <summary>
        /// 菜单图标
        /// </summary>
        public string Icon { get; set; }

        /// <summary>
        /// 菜单标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// 是否外链
        /// </summary>
        public string IsLink { get; set; }

        /// <summary>
        /// 是否隐藏
        /// </summary>
        public bool IsHide { get; set; }

        /// <summary>
        /// 是否全屏
        /// </summary>
        public bool IsFull { get; set; }

        /// <summary>
        /// 是否固定tabs nav
        /// </summary>
        public bool IsAffix { get; set; }

        /// <summary>
        /// 是否缓存
        /// </summary>
        public bool IsKeepAlive { get; set; }

        /// <summary>
        /// 当前路由未详情页时，需要高亮的菜单
        /// </summary>
        public string ActiveMenu { get; set; }
    }
}
